package com.tool.cn.util;

import java.io.File;
import java.lang.management.ManagementFactory;
import java.lang.management.RuntimeMXBean;

import javax.swing.filechooser.FileSystemView;

/**
 * java 默认参数工具类
 * @author wangzh
 * @date 2018年9月21日 下午1:57:12
 */
public final class SystemUtil {
	
	/**
	 * 获取项目地址
	 */
	public static String getUrl(){
		return System.getProperty("user.dir");
	}
	
	/**
	 * 获取系统名称
	 */
	public static String getSystemName(){
		return System.getProperty("os.name");
	}
	
	/**
	 * 获取系统换行符
	 */
	public static String getNewLine(){
		return System.getProperty("line.separator");
	}
	
	/**
	 * 获取系统目录目录符号
	 */
	public static String getFileSearche(){
		return File.separator.toString();
	}
	
	/**
	 * 获取用户工作空间
	 * @return
	 */
	public static String getUserHome(){
		return System.getProperty("user.home");
	}
	
	/**
	 * 获取当前用户桌面路径
	 */
	public static String getDesktop(){
		File desktopDir = FileSystemView.getFileSystemView().getHomeDirectory();
		return desktopDir.toString();
	}
	
	/**
	 * 获取自身进程id
	 */
	public static final int getProcessID() {  
        RuntimeMXBean runtimeMXBean = ManagementFactory.getRuntimeMXBean();
        System.out.println(runtimeMXBean.getName());
        return Integer.valueOf(runtimeMXBean.getName().split("@")[0])  
                .intValue();  
    } 
	
	/**
	 * 程序内存使用情况
	 */
	public static final void useMemory() {
		long free = Runtime.getRuntime().freeMemory();
		long total = Runtime.getRuntime().totalMemory(); 
		StringBuffer buf = new StringBuffer();
		buf.append("[Memry: used ").append((total-free)>>20)
		.append("M free ").append(free>>20)
		.append("M total ").append(total>>20).append("M]");
		System.out.println(buf.toString());
	}

}
